Tim Neumann [Wed, 26 Oct 2016 15:25:15 +0000 (17:25 +0200)]
Fix rust-lang/rust#35203 warning/error
rust-lang/rust#35203 made patterns in functions without body into a warn by default lint (which is being `deny`ed here).
bors [Wed, 26 Oct 2016 02:46:42 +0000 (19:46 -0700)]
Auto merge of #3230 - alexcrichton:better-download, r=alexcrichton
Download mingw from more reliable location
Use the same "mirror" the rust repo uses
Alex Crichton [Wed, 26 Oct 2016 02:46:09 +0000 (19:46 -0700)]
Download mingw from more reliable location
Use the same "mirror" the rust repo uses
bors [Wed, 26 Oct 2016 00:00:14 +0000 (17:00 -0700)]
Auto merge of #3217 - alexcrichton:fix-regression, r=brson
Ignore summaries in downloaded crates
Unfortunately historical Cargo bugs have made it such that the index sometimes
differs from the actual crate we download. Let's respect the index, however,
which should be our source of truth.
Closes #3214
Alex Crichton [Thu, 20 Oct 2016 22:07:18 +0000 (15:07 -0700)]
Ignore summaries in downloaded crates
Unfortunately historical Cargo bugs have made it such that the index sometimes
differs from the actual crate we download. Let's respect the index, however,
which should be our source of truth.
Closes #3214
bors [Tue, 25 Oct 2016 21:18:01 +0000 (14:18 -0700)]
Auto merge of #3229 - martinhath:master, r=alexcrichton
Add fix and test for #3224
This commit fixes #3224, and adds a test for it.
First time contributor to Cargo here, so I'm sorry if I put stuff the wrong places :)
Martin Hafskjold Thoresen [Tue, 25 Oct 2016 18:52:47 +0000 (20:52 +0200)]
Add fix and test for #3224
bors [Tue, 25 Oct 2016 05:31:40 +0000 (22:31 -0700)]
Auto merge of #3226 - alexcrichton:more-cross, r=alexcrichton
Download more cross builds
Alex Crichton [Tue, 25 Oct 2016 03:29:21 +0000 (20:29 -0700)]
Download more cross builds
bors [Thu, 20 Oct 2016 17:58:29 +0000 (10:58 -0700)]
Auto merge of #2818 - robinst:use-exec-for-cargo-run, r=alexcrichton
Use CommandExt::exec for `cargo run` on Unix (#2343)
Before, we would spawn a child process for the program. One of the
problems with that is when killing the cargo process, the program
continues running.
With this change, the cargo process is replaced by the program, and
killing it works.
Before (`cargo run` is the parent):
> 502 7615 7614 0 2:26PM ttys012 0:00.12 /Users/rstocker/.multirust/toolchains/stable-x86_64-apple-darwin/bin/cargo run
> 502 7620 7615 0 2:26PM ttys012 0:00.01 target/debug/program
After (the shell is the parent):
> 502 81649 81648 0 5:27PM ttys012 0:00.69 -zsh
> 502 7739 81649 0 2:26PM ttys012 0:01.27 target/debug/program
Robin Stocker [Fri, 1 Jul 2016 04:31:36 +0000 (14:31 +1000)]
Use CommandExt::exec for `cargo run` on Unix (#2343)
Before, we would spawn a child process for the program. One of the
problems with that is when killing the cargo process, the program
continues running.
With this change, the cargo process is replaced by the program, and
killing it works.
bors [Tue, 18 Oct 2016 16:07:50 +0000 (09:07 -0700)]
Auto merge of #3149 - cardoe:fix-pkgid-cmd, r=alexcrichton
pkgid cmd: fix help msg with multiple packages
When there are multiple versions of a package that match a given spec
the command tells you to re-run it with the `-p` argument which does not
exist. The command appears to work without it properly.
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
Doug Goldstein [Tue, 18 Oct 2016 05:24:53 +0000 (00:24 -0500)]
pkgid: add the -p flag as the output suggests
When you use this command and there are multiple packages that match
this spec, the help instructions tell you to rerun it with the -p
argument which was previously not present. Since the code paths are
shared with 'cargo build' and 'cargo update', this adds the -p argument
to 'cargo pkgid' to make things more consistent.
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
bors [Mon, 17 Oct 2016 20:19:22 +0000 (13:19 -0700)]
Auto merge of #3207 - steveklabnik:gh3202, r=alexcrichton
bump semver to 0.5.1
Fixes #3202
I've verified locally that this works, and have a test for it within semver. Two, actually.
@censoredusername if you could give this a shot to double check that it fixes your exact bug, that'd be cool.
Steve Klabnik [Mon, 17 Oct 2016 18:42:20 +0000 (14:42 -0400)]
bump semver to 0.5.1
Fixes #3202
bors [Mon, 17 Oct 2016 15:47:36 +0000 (08:47 -0700)]
Auto merge of #3205 - matklad:fix-rustdoc-ld-path, r=alexcrichton
Pass target environment for rustdoc
This should fix #3200, but I am not sure that this is a correct fix, and I need some input to figure this out.
`rustdoc` is invoked in two places, in `cargo_test.rs` and in `cargo_rustc/mod.rs`. Before the refactoring PR, these invocations used different LD_LIBRARY paths. [The one in cargo_rustc](https://github.com/rust-lang/cargo/pull/3198/files#diff-59acd1a3101aebbb591ac7ab51c19d9eR427) used "host" version, while [the one in cargo_test](https://github.com/rust-lang/cargo/blob/
a8baa5b8f36e88170c8c56523b6eb72efc2cc55e/src/cargo/ops/cargo_test.rs#L131) used "target" version.
The original PR changed both to "host", this PR switches both to "target". Is this correct, or should we stick with different environments for building documentation and doctests?
Aleksey Kladov [Mon, 17 Oct 2016 13:40:27 +0000 (16:40 +0300)]
Pass target environment for rustdoc
bors [Sat, 15 Oct 2016 07:48:19 +0000 (00:48 -0700)]
Auto merge of #3201 - alexcrichton:more-cross, r=alexcrichton
Prepare for more cross-compiled Cargos
Update deps, add support, ensure everything compiles right.
Alex Crichton [Sat, 15 Oct 2016 07:47:47 +0000 (00:47 -0700)]
Prepare for more cross-compiled Cargos
Update deps, add support, ensure everything compiles right.
bors [Thu, 13 Oct 2016 18:22:15 +0000 (11:22 -0700)]
Auto merge of #3198 - matklad:kill-command-type, r=alexcrichton
Remove CommandType struct
This removes `CommandType` struct as well as `cargo_rustc::process` function. So now all process creation goes thorough methods of `Compilation`.
This does change search path order from `util::dylib_path(), host_dylib_path()` to `host_dylib_path(), util::dylib_path()`, but I hope this is not a problem.
This also uncovers the fact that `rustdoc` is run sometimes with and sometimes without `host_dylib_path`. Is this intentional?
Aleksey Kladov [Thu, 13 Oct 2016 16:30:59 +0000 (19:30 +0300)]
Store host dylib path in compilation
Aleksey Kladov [Thu, 13 Oct 2016 15:36:12 +0000 (18:36 +0300)]
Remove CommandType struct
bors [Wed, 12 Oct 2016 14:24:47 +0000 (07:24 -0700)]
Auto merge of #3193 - matklad:kill-command-proto, r=alexcrichton
Remove command prototype
A followup of #3177 . I am not sure, but perhaps we can remove/refactor `CommandType` as well: for each command variant, `Compilation` as a public dedicated method, but it also has a generic one (`process`) (haha: https://github.com/rust-lang/cargo/pull/1107/files#r22429844).
Aleksey Kladov [Wed, 12 Oct 2016 11:39:46 +0000 (14:39 +0300)]
Remove command prototype
bors [Tue, 11 Oct 2016 20:40:36 +0000 (13:40 -0700)]
Auto merge of #3187 - edunham:appveyor-gnu, r=alexcrichton
Add GNU triples for #3186
Resources used to take an educated guess at this:
* Servo's appveyor.yml
* Rust's Buildbot config
* Alex
* Some random appveyor config that Alex had sitting around
Let's see if it works!
E. Dunham [Mon, 10 Oct 2016 19:33:22 +0000 (12:33 -0700)]
Use a MinGW that doesn't break pthreads
Also correct the bits to triples mapping, because tyops
E. Dunham [Mon, 10 Oct 2016 18:11:56 +0000 (11:11 -0700)]
Expand matrix for #3186
bors [Tue, 11 Oct 2016 17:45:15 +0000 (10:45 -0700)]
Auto merge of #3189 - edunham:fix-empty-path-bug, r=alexcrichton
Make it possible for windows-gnu tests to pass
Skip test that uses empty path on Windows, because Windows doesn't do the empty path thing.
E. Dunham [Mon, 10 Oct 2016 22:15:08 +0000 (15:15 -0700)]
empty path is not a thing on Windows
bors [Mon, 10 Oct 2016 19:44:07 +0000 (12:44 -0700)]
Auto merge of #3185 - semarie:bump-hamcrest, r=alexcrichton
bump hamcrest to 0.1.1
update hamcrest to 0.1.1 and its dependencies.
Closes: #3181
Sébastien Marie [Mon, 10 Oct 2016 10:08:48 +0000 (12:08 +0200)]
bump hamcrest to 0.1.1
bors [Sun, 9 Oct 2016 17:12:36 +0000 (10:12 -0700)]
Auto merge of #3183 - rjgoldsborough:broken-docs-links, r=alexcrichton
removing return false causing links to break
Gah! Sorry about that.
fixes #3182
I added a `return false` to the function above to prevent it from toggling itself back off but for some reason put one here as well which stopped the event before the link could fire.
Jake Goldsborough [Sun, 9 Oct 2016 00:30:55 +0000 (17:30 -0700)]
removing return false causing links to break
bors [Fri, 7 Oct 2016 21:20:26 +0000 (14:20 -0700)]
Auto merge of #3160 - alexcrichton:rustc-to-proc, r=alexcrichton
Blanket rename rustc-macro to proc-macro
bors [Fri, 7 Oct 2016 20:09:27 +0000 (13:09 -0700)]
Auto merge of #3154 - steveklabnik:gh3124, r=alexcrichton
upgrade semver
This is a spike at fixing #3124.
@alexcrichton I'm not sure how to actually emit the error message here. In the TOML example you linked me: https://github.com/rust-lang/cargo/blob/
5593045ddef2744c1042dee0c0037c2ebcc1834e/src/cargo/util/toml.rs#L166
That takes a Config as an argument. This function does not. What's the right approach here?
Also, this code is messy. I am 99% sure I can write it nicer with combinators. This is just to get the discussion going.
Steve Klabnik [Fri, 7 Oct 2016 20:03:08 +0000 (16:03 -0400)]
Bump to semver@0.5.0
Alex Crichton [Fri, 7 Oct 2016 19:43:48 +0000 (12:43 -0700)]
Add a test for deprecation warnings
Alex Crichton [Fri, 7 Oct 2016 19:34:00 +0000 (12:34 -0700)]
Tweak message in Dependency::parse
Provide some contextual information about why a dependency failed to parse.
bors [Fri, 7 Oct 2016 18:41:31 +0000 (11:41 -0700)]
Auto merge of #3177 - matklad:kill-exec-engine, r=alexcrichton
Remove ExecEngine abstraction
Hi! Not sure what was the idea behind exec engine (perhaps to allow swapping it out during tests?), but looks like it does absolutely nothing at the moment, and can be removed.
Alex Crichton [Fri, 7 Oct 2016 18:07:37 +0000 (11:07 -0700)]
Revert addition of a number of Config params
Steve Klabnik [Mon, 3 Oct 2016 21:21:46 +0000 (17:21 -0400)]
simplify slightly
Steve Klabnik [Mon, 3 Oct 2016 20:55:24 +0000 (16:55 -0400)]
Print the warning
Steve Klabnik [Mon, 3 Oct 2016 20:40:57 +0000 (16:40 -0400)]
thread a config throughout
Steve Klabnik [Mon, 3 Oct 2016 18:41:02 +0000 (14:41 -0400)]
upgrade semver
bors [Fri, 7 Oct 2016 17:55:46 +0000 (10:55 -0700)]
Auto merge of #3171 - alexcrichton:travis, r=alexcrichton
Fix Travis OSX
They recently changed images, gotta tweak how we work with OpenSSL
Alex Crichton [Thu, 6 Oct 2016 16:48:12 +0000 (09:48 -0700)]
Fix Travis OSX
They recently changed images, gotta tweak how we work with OpenSSL
Aleksey Kladov [Fri, 7 Oct 2016 12:01:38 +0000 (15:01 +0300)]
Remove ExecEngine abstraction
bors [Fri, 7 Oct 2016 00:08:12 +0000 (17:08 -0700)]
Auto merge of #3168 - rjgoldsborough:docs-menu-click-busted-2865, r=alexcrichton
tweaking the way the dropdown opens to fix links not working
fixes #2865
bors [Thu, 6 Oct 2016 21:03:22 +0000 (14:03 -0700)]
Auto merge of #3000 - matklad:error-format, r=alexcrichton
Add --message-format flag.
Closes #2982
This adds a `--message-format` flag with values `human` or `json-v1` to commands that may trigger compilation.
After the discussion in the issue I am no longer sure that this is a way to go:
* Looks like it buys nothing compared to `RUST_FLAGS` approach: a flag is more useful on the command line, but from the tool point of view there should be no significant differences between a flag and an environmental variable.
* Looks like we really want to wrap compiler's messages into our own json to tie them to particular compilation.
Alex Crichton [Tue, 4 Oct 2016 16:58:28 +0000 (09:58 -0700)]
Blanket rename rustc-macro to proc-macro
bors [Thu, 6 Oct 2016 16:47:21 +0000 (09:47 -0700)]
Auto merge of #3170 - alexcrichton:ignore-rustc-macro, r=alexcrichton
Ignore rustc-macro tests for now
We need to ignore them to land rust-lang/rust#36945 and after that we'll shortly
re-enable them.
Alex Crichton [Thu, 6 Oct 2016 16:46:32 +0000 (09:46 -0700)]
Ignore rustc-macro tests for now
We need to ignore them to land rust-lang/rust#36945 and after that we'll shortly
re-enable them.
bors [Thu, 6 Oct 2016 05:47:07 +0000 (22:47 -0700)]
Auto merge of #3162 - alexcrichton:ugh-mspdbsrv, r=brson
Leak mspdbsrv.exe processes on Windows
Instead of having our job object tear them down, instead leak them intentionally
if everything succeeded.
Closes #3161
bors [Thu, 6 Oct 2016 04:33:12 +0000 (21:33 -0700)]
Auto merge of #3146 - alexcrichton:install-same-workspace, r=brson
Use workspaces during `cargo install`
Prevent lock files from oscillating.
Closes #3133
bors [Thu, 6 Oct 2016 03:48:12 +0000 (20:48 -0700)]
Auto merge of #3137 - alexcrichton:bump-curl, r=brson
Update curl to track more error info
This hopefully will help out with https://github.com/rust-lang/cargo/issues/2464#issuecomment-
250583778 by including https://github.com/alexcrichton/curl-rust/commit/
07323ab5e868babb7a5437e8d2604761b913dab3 which should give us more information from libcurl
bors [Thu, 6 Oct 2016 02:26:10 +0000 (19:26 -0700)]
Auto merge of #3145 - alexcrichton:rustdoc-cross-test, r=brson
Test requested --target from source of truth
We skip doc tests for any cross compiles (as they don't work) but to detect a
cross compile we checked `--target` but forgot to check other locations like
`CARGO_BUILD_TARGET` or `[build.target]`. This alters the check to ensure that
it verifies from the source of truth whether a cross compilation happened or
not.
Closes #3143
bors [Thu, 6 Oct 2016 00:40:11 +0000 (17:40 -0700)]
Auto merge of #3136 - alexcrichton:warn-bad-override, r=brson
Warn about path overrides that won't work
Cargo has a long-standing [bug] in path overrides where they will cause spurious
rebuilds of crates in the crate graph. This can be very difficult to diagnose
and be incredibly frustrating as well. Unfortunately, though, it's behavior that
fundamentally can't be fixed in Cargo.
The crux of the problem happens when a `path` replacement changes something
about the list of dependencies of the crate that it's replacing. This alteration
to the list of dependencies *cannot be tracked by Cargo* as the lock file was
previously emitted. In the best case this ends up causing random recompiles. In
the worst case it cause infinite registry updates that always result in
recompiles.
A solution to this intention, changing the dependency graph of an overridden
dependency, was [implemented] with the `[replace]` feature in Cargo awhile back.
With that in mind, this commit implements a *warning* whenever a bad dependency
replacement is detected. The message here is pretty wordy, but it's intended to
convey that you should switch to using `[replace]` for a more robust
impelmentation, and it can also give security to anyone using `path` overrides
that if they get past this warning everything should work as intended.
[bug]: https://github.com/rust-lang/cargo/issues/2041
[implemented]: http://doc.crates.io/specifying-dependencies.html#overriding-dependencies
Closes #2041
Jake Goldsborough [Wed, 5 Oct 2016 23:40:10 +0000 (16:40 -0700)]
tweaking the way the dropdown opens to fix links not working
bors [Wed, 5 Oct 2016 23:22:25 +0000 (16:22 -0700)]
Auto merge of #3144 - alexcrichton:less-update-registry, r=brson
Avoid updating registry when adding existing deps
Cargo previously erroneously updated the registry whenever a new dependency was
added on a crate which already exists in the DAG. This commit fixes this
behavior by ensuring that if the new dependency matches a previously locked
version it uses that instead.
This commit involved a bit of refactoring around this logic to be a bit more
clear how the locking and "falling back to the registry" is happening.
Closes #2895
Aleksey Kladov [Wed, 5 Oct 2016 18:26:15 +0000 (21:26 +0300)]
Add some docs about JSON messages
bors [Wed, 5 Oct 2016 16:16:15 +0000 (09:16 -0700)]
Auto merge of #3157 - japaric:target-rustflags, r=alexcrichton
add support for per-target rustflags in .cargo/config
you can now specify rustflags on a per-target basis in .cargo/config:
``` toml
[target.x86_64-unknown-linux-gnu]
rustflags = ["x86", "specific", "flags"]
[target.arm-unknown-linux-gnueabi]
rustflags = ["arm", "specific", "flags"]
```
If both build.rustflags and target.*.rustflags are specified, the
target.* ones will be used.
As before RUSTFLAGS overrides either set.
closes #3153
r? @alexcrichton I've only added a smoke test and a precedence test. Let me know if I should add more tests!
Jorge Aparicio [Wed, 5 Oct 2016 04:59:03 +0000 (23:59 -0500)]
add documentation about target.$triple.rustflags
bors [Wed, 5 Oct 2016 00:26:32 +0000 (17:26 -0700)]
Auto merge of #3163 - brson:docdir, r=alexcrichton
Update rust-installer
Brian Anderson [Wed, 5 Oct 2016 00:21:10 +0000 (00:21 +0000)]
Update rust-installer
Alex Crichton [Tue, 4 Oct 2016 22:59:37 +0000 (15:59 -0700)]
Leak mspdbsrv.exe processes on Windows
Instead of having our job object tear them down, instead leak them intentionally
if everything succeeded.
Closes #3161
Jorge Aparicio [Tue, 4 Oct 2016 01:37:25 +0000 (20:37 -0500)]
add support for per-target rustflags in .cargo/config
you can now specify rustflags on a per-target basis in .cargo/config:
``` toml
[target.x86_64-unknown-linux-gnu]
rustflags = ["x86", "specific", "flags"]
[target.arm-unknown-linux-gnueabi]
rustflags = ["arm", "specific", "flags"]
```
If both build.rustflags and target.*.rustflags are specified, the
target.* ones will be used.
As before RUSTFLAGS overrides either set.
closes #3153
bors [Mon, 3 Oct 2016 17:52:53 +0000 (10:52 -0700)]
Auto merge of #3139 - jhbabon:improve-replace-parsing-error-msg, r=alexcrichton
Show an error messager for invalid semver spec for packages in the [replace] section.
The `[replace]` section in the `Cargo.toml` file doesn't allow invalid semver specsfor packages, so something like this:
```toml
[dependencies]
foo = "*"
[replace]
"foo:*" = { git = 'https://example.com' }
```
It's not valid. In this case we will display an error message like this:
```
error: failed to parse manifest at `Cargo.toml`
Caused by:
replacements must specify a valid semver version to replace, but `foo:*` does not
Caused by:
Parse error
```
closes #3129
Juan Hernández [Mon, 3 Oct 2016 08:55:05 +0000 (10:55 +0200)]
Use chain_error in TomlManifest.replace when checking valid semver.
Don't throw away previous error messages, they might be useful
for the user.
bors [Mon, 3 Oct 2016 08:43:02 +0000 (01:43 -0700)]
Auto merge of #3150 - matklad:deprecate-read-manifest, r=alexcrichton
Document that read_manifest command is deprecated
I believe we intended to deprecate read_manifest command. I am not sure what a deprecation process for Cargo commands should be, but I guess it should involve mentioning somewhere that the command is deprecated :)
bors [Mon, 3 Oct 2016 07:06:51 +0000 (00:06 -0700)]
Auto merge of #3147 - carols10cents:versions-in-readme, r=alexcrichton
Add information about Cargo releases going with Rust releases
Closes #3101.
This just adds a table of rust release numbers to cargo release numbers, and some text that clarifies that they happen together.
I put the table behind a details tag, which Chrome renders really nicely with a little toggle triangle... Firefox will do the toggling *functionality* but doesn't have much of an indication that you can click on the text, but I think they're working on it. Servo has a little triangle but nothing happens when you click on it ;)
Aleksey Kladov [Sat, 1 Oct 2016 10:53:42 +0000 (13:53 +0300)]
Store CargoError inside the ProcessError
Aleksey Kladov [Sat, 1 Oct 2016 10:31:12 +0000 (13:31 +0300)]
Rename message-format flag to json
Aleksey Kladov [Wed, 28 Sep 2016 16:54:35 +0000 (19:54 +0300)]
Create a centralized machine_message module
Aleksey Kladov [Tue, 27 Sep 2016 11:39:08 +0000 (14:39 +0300)]
Don't panic while streaming compiler output
Aleksey Kladov [Thu, 11 Aug 2016 21:47:49 +0000 (00:47 +0300)]
Add --message-format flag.
Aleksey Kladov [Sun, 2 Oct 2016 14:20:45 +0000 (17:20 +0300)]
Document that read_manifest command is deprecated
Carol (Nichols || Goulding) [Fri, 30 Sep 2016 23:51:08 +0000 (19:51 -0400)]
Add information about Cargo releases going with Rust releases
Alex Crichton [Fri, 30 Sep 2016 20:16:38 +0000 (13:16 -0700)]
Use workspaces during `cargo install`
Prevent lock files from oscillating.
Closes #3133
Alex Crichton [Fri, 30 Sep 2016 20:07:37 +0000 (13:07 -0700)]
Test requested --target from source of truth
We skip doc tests for any cross compiles (as they don't work) but to detect a
cross compile we checked `--target` but forgot to check other locations like
`CARGO_BUILD_TARGET` or `[build.target]`. This alters the check to ensure that
it verifies from the source of truth whether a cross compilation happened or
not.
Closes #3143
Alex Crichton [Thu, 21 Jul 2016 16:50:33 +0000 (09:50 -0700)]
Avoid updating registry when adding existing deps
Cargo previously erroneously updated the registry whenever a new dependency was
added on a crate which already exists in the DAG. This commit fixes this
behavior by ensuring that if the new dependency matches a previously locked
version it uses that instead.
This commit involved a bit of refactoring around this logic to be a bit more
clear how the locking and "falling back to the registry" is happening.
Closes #2895
Closes #2931
bors [Fri, 30 Sep 2016 16:18:55 +0000 (09:18 -0700)]
Auto merge of #3142 - alexcrichton:siphash, r=alexcrichton
Allow deprecated use of SipHasher
This type is being deprecated in rust-lang/rust#36815, so allow use of the
deprecated type for now. We can fix this later once new APIs have landed.
Alex Crichton [Fri, 30 Sep 2016 16:17:36 +0000 (09:17 -0700)]
Allow deprecated use of SipHasher
This type is being deprecated in rust-lang/rust#36815, so allow use of the
deprecated type for now. We can fix this later once new APIs have landed.
Juan Hernández [Fri, 30 Sep 2016 11:27:10 +0000 (13:27 +0200)]
Show an error messager for invalid semver spec for packages in the [replace] section.
The [replace] section in the Cargo.toml file doesn't allow invalid semver specs
for packages, so something like this:
[dependencies]
foo = "*"
[replace]
"foo:*" = { git = 'https://example.com' }
It's not valid. In this case we will display an error message like this:
error: failed to parse manifest at `Cargo.toml`
Caused by:
replacements must specify a valid semver version to replace, but `foo:*` does not
Alex Crichton [Fri, 30 Sep 2016 00:30:18 +0000 (17:30 -0700)]
Update curl to track more error info
Alex Crichton [Thu, 29 Sep 2016 23:35:22 +0000 (16:35 -0700)]
Warn about path overrides that won't work
Cargo has a long-standing [bug] in path overrides where they will cause spurious
rebuilds of crates in the crate graph. This can be very difficult to diagnose
and be incredibly frustrating as well. Unfortunately, though, it's behavior that
fundamentally can't be fixed in Cargo.
The crux of the problem happens when a `path` replacement changes something
about the list of dependencies of the crate that it's replacing. This alteration
to the list of dependencies *cannot be tracked by Cargo* as the lock file was
previously emitted. In the best case this ends up causing random recompiles. In
the worst case it cause infinite registry updates that always result in
recompiles.
A solution to this intention, changing the dependency graph of an overridden
dependency, was [implemented] with the `[replace]` feature in Cargo awhile back.
With that in mind, this commit implements a *warning* whenever a bad dependency
replacement is detected. The message here is pretty wordy, but it's intended to
convey that you should switch to using `[replace]` for a more robust
impelmentation, and it can also give security to anyone using `path` overrides
that if they get past this warning everything should work as intended.
[bug]: https://github.com/rust-lang/cargo/issues/2041
[implemented]: http://doc.crates.io/specifying-dependencies.html#overriding-dependencies
Closes #2041
bors [Thu, 29 Sep 2016 20:39:04 +0000 (13:39 -0700)]
Auto merge of #3135 - alexcrichton:bump, r=alexcrichton
Bump to 0.14.0
Alex Crichton [Thu, 29 Sep 2016 18:31:17 +0000 (11:31 -0700)]
Bump to 0.14.0
bors [Thu, 29 Sep 2016 14:12:44 +0000 (07:12 -0700)]
Auto merge of #3134 - whitequark:patch-1, r=steveklabnik
doc: build-script: use cfg(unix), not a hardcoded x86_64 triple
This used to not be possible, but it is now, so let's promote best practices.
whitequark [Thu, 29 Sep 2016 11:22:40 +0000 (11:22 +0000)]
doc: build-script: use cfg(unix), not a hardcoded x86_64 triple
This used to not be possible, but it is now, so let's promote best practices.
bors [Wed, 28 Sep 2016 18:16:15 +0000 (11:16 -0700)]
Auto merge of #3127 - kraai:patch, r=alexcrichton
Add newlines to SYNOPSIS sections
Matt Kraai [Wed, 28 Sep 2016 10:54:09 +0000 (03:54 -0700)]
Add newlines to SYNOPSIS sections
bors [Wed, 28 Sep 2016 00:50:27 +0000 (17:50 -0700)]
Auto merge of #3057 - rjgoldsborough:add-policies, r=steveklabnik
adding policies page to the docs
Fixes #3056
bors [Tue, 27 Sep 2016 23:50:36 +0000 (16:50 -0700)]
Auto merge of #3125 - mbrubeck:dev-deps, r=alexcrichton
Build transitive dev-dependencies when needed
When running `cargo test -p foo` where `foo` is a crate in the current workspace, build and link `foo`'s dev-dependencies. Fixes #860.
Alex Crichton [Tue, 27 Sep 2016 23:48:27 +0000 (08:48 +0900)]
Merge pull request #3032 from brson/rust-installer
Update rust-installer
Matt Brubeck [Mon, 26 Sep 2016 21:13:49 +0000 (14:13 -0700)]
Build transitive dev-dependencies when needed
When running `cargo test -p foo` where `foo` is a crate in the current
workspace, build and link `foo`'s dev-dependencies. Fixes #860.
bors [Tue, 27 Sep 2016 20:03:32 +0000 (13:03 -0700)]
Auto merge of #3123 - wimh:platform_versions, r=alexcrichton
Don't download dependencies from other platforms
Having a Cargo.toml which looks like this:
[package]
name = "a"
version = "0.0.1"
authors = []
[target.'cfg(unix)'.dependencies]
foo = "0.1.0"
[target.'cfg(windows)'.dependencies]
foo = "0.2.0"
This would still download foo version 0.2.0 on unix. I think there is no need to do that, but please correct me if I'm wrong.
This was triggered by [this](http://stackoverflow.com/questions/
39709542/why-does-the-last-platform-specific-dependency-take-precedence-in-cargo) stackoverflow question, but that situation is more complicated, as the version is the same, just the features are different. This PR will not solve that bug. If you want me to include that too, I would have to debug a bit more first....
bors [Tue, 27 Sep 2016 00:02:55 +0000 (17:02 -0700)]
Auto merge of #3089 - carols10cents:crates-io-registry-url, r=alexcrichton
Make crates-io registry URL optional in config; ignore all changes to source.crates-io
Hi! When I was working on the instructions for source replacement [in this crates.io PR](https://github.com/rust-lang/crates.io/pull/440), I found that when I'm replacing `source.crates-io`, [I still have to specify some value for `registry`](https://github.com/rust-lang/crates.io/pull/440/files#diff-04c6e90faac2675aa89e2176d2eec7d8R177), or else I get this:
```
error: no source URL specified for `source.crates-io`, need either `registry` or `local-registry` defined
```
This seems weird and annoying to me: cargo definitely knows the registry URL for crates-io, and I'm trying to replace it anyway.
So the first commit in this PR makes it optional, so that you don't have to specify a registry url for crates-io: it uses `SourceId::crates_io`, like it would if we didn't have any source configs at all.
~~The second commit in this PR might go too far, and/or might break existing uses of cargo, I'm not sure. In my opinion, `source.crates-io` should only be able to be replaced and never changed directly-- crates-io should always be crates-io, and I should be able to assume that in any project. So the second commit ignores all modifications to `source.crates-io`'s `registry`, `local-registry`, and `directory`, and warns that they're being ignored.~~
~~I tried to search github to see if anyone was using these keys with `source.crates-io`, but since github's search ignores `.` (ARE YOU LISTENING GITHUB? I WOULD LIKE TO SEARCH WITH PUNCTUATION PLEASE), there's a lot of false positives to wade through. I didn't see anything in the first few pages though.~~
I'm happy to make whatever modifications to this!
Wim Hueskes [Mon, 26 Sep 2016 22:55:58 +0000 (00:55 +0200)]
Do not download dependencies from other platforms
Wim Hueskes [Mon, 26 Sep 2016 22:46:10 +0000 (00:46 +0200)]
add test cfg/ignore_version_from_other_platform
if different platforms have a dependency to a different
version of a crate, only the correct dependency should
be downloaded and used
bors [Mon, 26 Sep 2016 22:51:22 +0000 (15:51 -0700)]
Auto merge of #3110 - jsgf:topic-license-metadata, r=alexcrichton
cargo: add license and license_file to cargo metadata output
Proposed fix for #3108